package com.jrx.anytxn.transaction.dto.loan;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jrx.anytxn.transaction.dto.common.CommonRes;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @ClassName LoanConfirmRes
 *  贷款确认及试算响应实体
 * @author  haopu.zheng
 * date  2019/7/22
 * @Version V1.0
 **/
public class LoanConfirmRes extends CommonRes implements Serializable {
    /**
     * 订单金额
     */
    private BigDecimal loanAmount;
    /**
     * 期数
     */
    private Integer tenor;
    /**
     * 日利率
     */
    private BigDecimal dayRate;
    /**
     * 年利率
     */
    private BigDecimal yearRate;
    /**
     * 还款日
     */
    private Integer paymentDueDay;
    /**
     * 首次还款日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date firstPaymentDueDate;
    /**
     * 最后还款日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date lastPaymentDueDate;
    /**
     * 总还款金额
     */
    private BigDecimal totalPaymentAmount;
    /**
     * 总利息金额
     */
    private BigDecimal totalInterestAmount;
    /**
     * 总费用金额
     */
    private BigDecimal totalFeeAmount;

    /**
     * 还款计划
     */
    private List<RepaymentPlanRes> paymentPlanList;

    /**
     * 订单状态
     */
    private String loanStatus;

    /**
     * 总优惠金额
     */
    private BigDecimal totalExemptAmount;

    /**
     * 客户权益id
     */
    private Long custRightId;

    /**
     * 权益名称
     */
    private String rightsName;

    /**
     * 促销活动ID
     */
    private String promotionId;

    /**
     * 促销活动描述
     */
    private String promotionDesc;

    private String feeTableId;

    private String amortMethodTableId;

    private String waiveInterestId;

    private Integer waiveInterestDays;

    private BigDecimal actualWaiveDailyRate;

    public String getLoanStatus() {
        return loanStatus;
    }

    public void setLoanStatus(String loanStatus) {
        this.loanStatus = loanStatus;
    }

    public List<RepaymentPlanRes> getPaymentPlanList() {
        return paymentPlanList;
    }

    public void setPaymentPlanList(List<RepaymentPlanRes> paymentPlanList) {
        this.paymentPlanList = paymentPlanList;
    }

    public BigDecimal getLoanAmount() {
        return loanAmount;
    }

    public void setLoanAmount(BigDecimal loanAmount) {
        this.loanAmount = loanAmount;
    }

    public Integer getTenor() {
        return tenor;
    }

    public void setTenor(Integer tenor) {
        this.tenor = tenor;
    }

    public BigDecimal getDayRate() {
        return dayRate;
    }

    public void setDayRate(BigDecimal dayRate) {
        this.dayRate = dayRate;
    }

    public BigDecimal getYearRate() {
        return yearRate;
    }

    public void setYearRate(BigDecimal yearRate) {
        this.yearRate = yearRate;
    }

    public Integer getPaymentDueDay() {
        return paymentDueDay;
    }

    public void setPaymentDueDay(Integer paymentDueDay) {
        this.paymentDueDay = paymentDueDay;
    }

    public Date getFirstPaymentDueDate() {
        return firstPaymentDueDate;
    }

    public void setFirstPaymentDueDate(Date firstPaymentDueDate) {
        this.firstPaymentDueDate = firstPaymentDueDate;
    }

    public Date getLastPaymentDueDate() {
        return lastPaymentDueDate;
    }

    public void setLastPaymentDueDate(Date lastPaymentDueDate) {
        this.lastPaymentDueDate = lastPaymentDueDate;
    }

    public BigDecimal getTotalPaymentAmount() {
        return totalPaymentAmount;
    }

    public void setTotalPaymentAmount(BigDecimal totalPaymentAmount) {
        this.totalPaymentAmount = totalPaymentAmount;
    }

    public BigDecimal getTotalInterestAmount() {
        return totalInterestAmount;
    }

    public void setTotalInterestAmount(BigDecimal totalInterestAmount) {
        this.totalInterestAmount = totalInterestAmount;
    }

    public BigDecimal getTotalFeeAmount() {
        return totalFeeAmount;
    }

    public void setTotalFeeAmount(BigDecimal totalFeeAmount) {
        this.totalFeeAmount = totalFeeAmount;
    }

    public BigDecimal getTotalExemptAmount() {
        return totalExemptAmount;
    }

    public void setTotalExemptAmount(BigDecimal totalExemptAmount) {
        this.totalExemptAmount = totalExemptAmount;
    }

    public Long getCustRightId() {
        return custRightId;
    }

    public void setCustRightId(Long custRightId) {
        this.custRightId = custRightId;
    }

    public String getRightsName() {
        return rightsName;
    }

    public void setRightsName(String rightsName) {
        this.rightsName = rightsName;
    }

    public String getPromotionId() {
        return promotionId;
    }

    public void setPromotionId(String promotionId) {
        this.promotionId = promotionId;
    }

    public String getPromotionDesc() {
        return promotionDesc;
    }

    public void setPromotionDesc(String promotionDesc) {
        this.promotionDesc = promotionDesc;
    }

    public String getFeeTableId() {
        return feeTableId;
    }

    public void setFeeTableId(String feeTableId) {
        this.feeTableId = feeTableId;
    }

    public String getAmortMethodTableId() {
        return amortMethodTableId;
    }

    public void setAmortMethodTableId(String amortMethodTableId) {
        this.amortMethodTableId = amortMethodTableId;
    }

    public String getWaiveInterestId() {
        return waiveInterestId;
    }

    public void setWaiveInterestId(String waiveInterestId) {
        this.waiveInterestId = waiveInterestId;
    }

    public Integer getWaiveInterestDays() {
        return waiveInterestDays;
    }

    public void setWaiveInterestDays(Integer waiveInterestDays) {
        this.waiveInterestDays = waiveInterestDays;
    }

    public BigDecimal getActualWaiveDailyRate() {
        return actualWaiveDailyRate;
    }

    public void setActualWaiveDailyRate(BigDecimal actualWaiveDailyRate) {
        this.actualWaiveDailyRate = actualWaiveDailyRate;
    }
}
